﻿//   
//                            _ooOoo_    
//                           o8888888o    
//                           88" . "88    
//                           (| -_- |)    
//                            O\ = /O    
//                        ____/`---'\____    
//                      .   ' \\| |// `.    
//                       / \\||| : |||// \    
//                     / _||||| -:- |||||- \    
//                       | | \\\ - /// | |    
//                     | \_| ''\---/'' | |    
//                      \ .-\__ `-` ___/-. /    
//                   ___`. .' /--.--\ `. . __    
//                ."" '< `.___\_<|>_/___.' >'"".    
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |    
//                 \ \ `-. \_ __\ /__ _/ .-` / /    
//         ======`-.____`-.___\_____/___.-`____.-'======    
//                            `=---='    
//    
//         .............................................    
//                  佛祖保佑             永无BUG    
                                                               


using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using NF_Base;



namespace NF_Web
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            try
            {
                #region - 全局异常捕获 -
                
                //设置应用程序处理异常方式：ThreadException处理
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
                //处理UI线程异常
                Application.ThreadException += Application_ThreadException;
                //处理非UI线程异常
                AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
                
                #endregion


                #region - 启动 -
                
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("Zhuoying");
                if (myProcesses.Length > 2)
                {
                    MessageBoxShow.Alert("已经有一个程序进程正在运行！");
                    return;
                }

                FrmLogin frmlg = new FrmLogin();
                frmlg.ShowDialog();
                if (frmlg.DialogResult == DialogResult.OK)
                {
                    Application.Run(new FrmMain());
                }
                #endregion
            }
            catch (Exception ex)
            {
                ErroLog.SysLog(ex);
            }
            
        }



        /// <summary>
        /// 处理非UI线程异常
        /// </summary>
        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            ErroLog.SysLog(e.ExceptionObject as Exception);
        }

        /// <summary>
        /// 处理UI线程异常
        /// </summary>
        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            ErroLog.SysLog(e.Exception);
        }

    }
}
